/* Holly Beach & Liviu Patrasco
 *  process.h
 *  Created on: Feb 25, 2012
 */

#ifndef PROCESS_H_
#define PROCESS_H_

enum process_names {UI, CALCULATOR, PRODUCER, CONSUMER};
enum process_states {RUNNING, RUNNABLE, BLOCKED, INTERRUPTED};
enum waiting_for_names {CONS, PROD, KEYBOARD, ROUTER, NUL};

typedef struct {
	enum process_names name;
	char *strName; /*printable name*/
	int id;         /*ID unique to this process*/
	int priority;
	int pc;         /*process program counter*/
	int addressForSyscall;
	enum process_states status;
	char *strStatus; /*printable status*/
	enum waiting_for_names waitingFor;  //what a blocked process is waiting for
	int memoryAddress;  //used for consumer/producer

} process;

#endif /* PROCESS_H_ */
